Skip to content

fix(qt): 固定 app-local 微软 CRT 并验证隔离 Windows 加载 - #141

Merged
JavaZeroo merged 2 commits into
mainfrom
fix/qt-crt-deploy-r2
Oct 28, 2026
Merged

JavaZeroo merged 2 commits into
mainfrom
fix/qt-crt-deploy-r2

Conversation

@JavaZeroo

@JavaZeroo JavaZeroo commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

正式 Qt 入口此前使用 --no-compiler-runtime,在没有 VC++ CRT 的隔离 Windows 中首次实际加载以 0xC0000135 退出。本改动固定微软官方 14.51.36247.0 app-local CRT,准备时仅解包并逐层核对身份,保留原许可;构建时验证实际 VC Tools 版本和全部固定文件,缺失、篡改或版本超限明确失败。每次构建可在无需重链接时修复 CRT,打包清单绑定 Qt/ConPTY/字体/CRT 的全部运行时文件。不运行安装器、不修改 System32、不在用户启动时下载或回退。

原 cf8b40b 的 52 个文件完全不变,只追加每个运行时十个 CRT DLL、原许可和 NOTICE 后,同一 guest 的原生 Qt 窗口、有限 cmd 和关闭回收通过;System32 五个 CRT 文件仍不存在,VC++ 安装记录仍为空。新源码 c5a47ad 的全新准备/构建包另作集成验证,避免把重编译后的成功当作纯 CRT 因果。

验证:

  • 公共 CLI:普通与 -O 均 27/27(21 个新增子进程测试、6 个既有边界测试);含五个真实 NTFS junction 负例。
  • 全新离线依赖准备、Release x64 两个 Qt target、完整 37/39 文件清单;限定 offscreen CTest 1/1,Job active 0 / total 26 / terminated 0。
  • 隔离 Win11 26300.9457 / Session 2:原包失败、纯 CRT 修订的 load/smoke、新源码包的 load/smoke 五个请求分列,全无超时/强杀,最终 Job active 0,脚本 staged 哈希和全部包哈希复核通过。
  • 缺少 CRT 输入配置失败;删除单个已核对 DLL 后,独立部署目标恢复精确哈希且 EXE 不变。
  • 公开证据仅包含脱敏结果和内容身份,53 份原始记录留私有目录。

已完成 Standards / Spec 双轴审查并合入main abfc98595b3d92a09916886c1d1efea4eee7fe35。范围仅 #138,不代表完整 R2 发行、Qt/第三方完整分发审计、DPI/IME/Find/rename 或物理呈现验收,presented_done=null。

Closes #138
Refs #35

最终验证边界:固定HEAD4388302双轴均0;专用Qt PR40742159648/push40742071864及参考PR40742159670/push40742071818成功。两个默认Windows运行保留独立失败:push40742071881为51/52(Node纯夹具原10秒超时,#144),PR40742159646实际checkout9ecdba06bd79f17171b526fb140b4f615add4de7为52/53(system ConPTY startup resize后child仍80×24,#145)。原件已保存,未重跑、未称修复。仅验收app-local CRT修复与新包原生加载/cmd/回收;#35/#38/R2继续开放。

Copy link
Copy Markdown
Owner Author

固定 HEAD 43883022883d382e3dd57bd627e9c735bafe58ca 双轴审查完成:Standards硬违规0/实质维护问题0,Spec0。独立只读重算53份原件、包/CAB切片/十DLL、原52/追加24/新78三组文件与104个PE导入报告;5个guest请求的公开观测和原件一致。没有重跑guest,也没有把完整许可/物理呈现/R2标为通过。

专用Qt PR/push工作流与参考工作流已成功;默认Windows回归仍在收尾,其中push的Test步骤已报failure,需保留并读取实际首错,尚不合入、不盲目重跑。

Copy link
Copy Markdown
Owner Author

默认push首错已归独立 #144(父#38):Windows CTest51/52,Node合成Qt调用夹具在原10秒TimeoutExpired,源未被本PR修改;没有启动/VM阶段证据,原因未知。failure artifact12840955540已下载并按API digest核对,LastTest原字节保存。无同HEAD重试;PR默认运行的结果另列,不能覆盖本次失败。

@JavaZeroo
JavaZeroo marked this pull request as ready for review October 28, 2026 18:22
@JavaZeroo
JavaZeroo merged commit abfc985 into main Oct 28, 2026
8 of 10 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-28T18:23:36.426706Z 4388302 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[R2][Qt交付] 补齐干净 Windows 中的微软 C++ 运行库依赖

1 participant